GtkActionMuxer: Add getters
authorMatthias Clasen <mclasen@redhat.com>
Wed, 14 May 2014 00:27:58 +0000 (20:27 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 15 May 2014 01:27:56 +0000 (21:27 -0400)
Add a way to enumerate all prefixes, and to get the
action group for a prefix.

https://bugzilla.gnome.org/show_bug.cgi?id=730095

gtk/gtkactionmuxer.c
gtk/gtkactionmuxer.h

index 2e48d6c28b92bfbe850723ca2218494c93fb53cd..09cb1b3741e15e7a75901690fbe152fe64281200 100644 (file)
@@ -730,6 +730,26 @@ gtk_action_muxer_remove (GtkActionMuxer *muxer,
     }
 }
 
+gchar **
+gtk_action_muxer_list_prefixes (GtkActionMuxer *muxer)
+{
+  return (gchar **) g_hash_table_get_keys_as_array (muxer->groups, NULL);
+}
+
+GActionGroup *
+gtk_action_muxer_lookup (GtkActionMuxer *muxer,
+                         const gchar    *prefix)
+{
+  Group *group;
+
+  group = g_hash_table_lookup (muxer->groups, prefix);
+
+  if (group != NULL)
+    return group->group;
+
+  return NULL;
+}
+
 /*< private >
  * gtk_action_muxer_new:
  *
@@ -906,3 +926,4 @@ gtk_print_action_and_target (const gchar *action_namespace,
 
   return g_string_free (result, FALSE);
 }
+
index d71abf48dd75cccf17bde8930c23ea18b07679c9..94b74914094703cfd99a43268d471dcc258cce24 100644 (file)
@@ -41,7 +41,9 @@ void                    gtk_action_muxer_insert                         (GtkActi
 
 void                    gtk_action_muxer_remove                         (GtkActionMuxer *muxer,
                                                                          const gchar    *prefix);
-
+gchar **                gtk_action_muxer_list_prefixes                  (GtkActionMuxer *muxer);
+GActionGroup *          gtk_action_muxer_lookup                         (GtkActionMuxer *muxer,
+                                                                         const gchar    *prefix);
 GtkActionMuxer *        gtk_action_muxer_get_parent                     (GtkActionMuxer *muxer);
 
 void                    gtk_action_muxer_set_parent                     (GtkActionMuxer *muxer,